1. Field of the Invention
The present invention relates to updating objects stored in a database, wherein a database thread manages database transaction requests, and said requests are processed with a lower priority than other, concurrent threads used to update said objects.
2. Description of the Related Art
The use of databases to store, correlate and distribute data is today well established. Databases are structured according to different operating principles and two of the most prominent thereof are relational databases and object-oriented databases. Typically, any of those different types of databases are stored in a central server connected to a network and the data stored therein is subsequently distributed for consultation, processing and updating to networked user terminals known to those skilled in the art as ‘clients’. A client ‘session’ is thus initiated when a networked terminal user runs an application program or a database tool and connects to a relational- or object-oriented database stored in a remote database server.
In order to allow said client sessions to work “simultaneously” and share computer resources, said database server must control concurrency, i.e. the accessing of the same persistent data stored in said database by many users. Indeed, without adequate concurrency controls, a loss of data integrity is likely to occur. A relational or object-oriented database therefore uses locks to control concurrent access to data stored therein. In effect, a lock gives a networked terminal user temporary ownership of a database resource such as data or object stored in a database table, such that said data or object cannot be changed by other users until a user finishes working with it.
According to the prior art, a terminal user therefore consults persistent data which, upon being potentially amended by said terminal user, subsequently requires updating at the database server by means of a series of SQL statements known to those skilled in the art as a transaction. In this environment, a single multi-threaded multi-user database server handles all client database transaction requests by multiplexing a small number of threads from its thread pool.
A problem arises from the above prior art, which relates to the mechanism by which requests to update persistent data stored in the database are processed. Whilst said update takes place, i.e. SQL statements are processed at the database server, said terminal user cannot consult and potentially further amend or query said persistent data, thereby resulting in an unproductive lapse of time for said terminal user.